Skip to content

Conversation

@mschristensen
Copy link
Contributor

Description

Misc. fixes and improvements to the citations docs page.

Checklist

@coderabbitai
Copy link

coderabbitai bot commented Jan 14, 2026

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mschristensen mschristensen added the review-app Create a Heroku review app label Jan 14, 2026
@ably-ci ably-ci temporarily deployed to ably-docs-bugfix-ait-13-zuuvmv January 14, 2026 22:32 Inactive
meta_keywords: "citations, references, source attribution, message annotations, AI transparency, source tracking, annotation summaries"
---

AI agents often draw information from external sources such as documents, web pages, or databases. Citations to those sources enable users to verify information, explore sources in detail, and understand where responses came from. Ably's [message annotations](/docs/messages/annotations) provide a model-agnostic, structured way to attach source citations to AI responses without modifying the response content. It enable clients to append information to existing messages on a channel.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
AI agents often draw information from external sources such as documents, web pages, or databases. Citations to those sources enable users to verify information, explore sources in detail, and understand where responses came from. Ably's [message annotations](/docs/messages/annotations) provide a model-agnostic, structured way to attach source citations to AI responses without modifying the response content. It enable clients to append information to existing messages on a channel.
AI agents often draw information from external sources such as documents, web pages, or databases. Citations to those sources enable users to verify information, explore sources in detail, and understand where responses came from. Ably's [message annotations](/docs/messages/annotations) provide a model-agnostic, structured way to attach source citations to AI responses without modifying the response content. It enables clients to append information to existing messages on a channel.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- Transparency: Users can verify claims and understand the basis for AI responses. This builds trust and allows users to fact-check information independently.
- Source exploration: Citations enable users to dive deeper into topics by accessing original sources. This is particularly valuable for research, learning, and decision-making workflows.
- Attribution: Proper attribution respects content creators and helps users understand which sources informed the AI's response.
- Audit trails: For enterprise applications, citations provide an audit trail showing which information sources were consulted during AI interactions.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Audit trails: For enterprise applications, citations provide an audit trail showing which information sources were consulted during AI interactions.
- Audit trails: For enterprise applications, citations provide explicit traceability between LLM responses and the information sources that were consulted when generating them.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


1. The agent publishes an AI response as a single message, or builds it incrementally using [message appends](/docs/ai-transport/message-per-response).
2. The agent publishes one or more annotations to attach citations to the response message, each referencing the response message [`serial`](/docs/messages#properties).
3. Ably automatically aggregates annotations and generates summaries showing total counts and groupings (for example, by domain name).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Ably automatically aggregates annotations and generates summaries showing total counts and groupings (for example, by domain name).
3. Ably automatically aggregates annotations and generates summaries showing total counts and groupings (for example, by source domain name).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1. Go to the [Ably dashboard](https://www.ably.com/dashboard) and select your app.
2. Navigate to the "Configuration" > "Rules" section from the left-hand navigation bar.
3. Choose "Add new rule".
4. Enter a channel name or namespace pattern (e.g. `ai:*` for all channels starting with `ai:`).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
4. Enter a channel name or namespace pattern (e.g. `ai:*` for all channels starting with `ai:`).
4. Enter a channel name or namespace pattern (e.g. `ai` for all channels starting with `ai:`).

Do we need to check for other occurrences of this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5. Select the "Message annotations, updates, deletes and appends" option from the list.
6. Click "Create channel rule".

The examples in this guide use the `ai:` namespace prefix, which assumes you have configured the rule for `ai:*`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The examples in this guide use the `ai:` namespace prefix, which assumes you have configured the rule for `ai:*`.
The examples in this guide use the `ai:` namespace prefix, which assumes you have configured the rule for `ai`.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


## Citation data model <a id="data-model"/>

Citations are implemented using [message annotations](/docs/messages/annotations). Each citation consists of an annotation type that determines how citations are aggregated into summaries, and a data payload containing the citation details.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Citations are implemented using [message annotations](/docs/messages/annotations). Each citation consists of an annotation type that determines how citations are aggregated into summaries, and a data payload containing the citation details.
Citations are implemented using [message annotations](/docs/messages/annotations). Each citation includes an annotation `type` that determines how citations are aggregated into summaries, and a `data` payload containing the citation details.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

</Aside>

<Aside data-type="note">
Identify the agent with a [`clientId`](/docs/messages#properties) in order to attribute citations to a specific agent. This is useful in multi-agent architectures where multiple agents may contribute citations to the same response. For more information, see [Agent identity](/docs/ai-transport/features/sessions-identity/identifying-users-and-agents#agent-identity).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Identify the agent with a [`clientId`](/docs/messages#properties) in order to attribute citations to a specific agent. This is useful in multi-agent architectures where multiple agents may contribute citations to the same response. For more information, see [Agent identity](/docs/ai-transport/features/sessions-identity/identifying-users-and-agents#agent-identity).
Identify the agent with a [`clientId`](/docs/messages#properties) in order to attribute a citation to a specific agent. This is useful in multi-agent architectures where multiple agents may contribute citations to the same response. For more information, see [Agent identity](/docs/ai-transport/features/sessions-identity/identifying-users-and-agents#agent-identity).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ably-ci ably-ci temporarily deployed to ably-docs-bugfix-ait-13-zuuvmv January 15, 2026 10:01 Inactive
@ably-ci ably-ci temporarily deployed to ably-docs-bugfix-ait-13-zuuvmv January 15, 2026 10:03 Inactive
Copy link
Member

@paddybyers paddybyers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, thanks

@mschristensen mschristensen force-pushed the bugfix/AIT-133-citations branch from 01f3436 to 271d423 Compare January 15, 2026 10:06
@ably-ci ably-ci temporarily deployed to ably-docs-bugfix-ait-13-zuuvmv January 15, 2026 10:06 Inactive
@mschristensen mschristensen merged commit 7821a8f into AIT-129-AIT-Docs-release-branch Jan 15, 2026
7 checks passed
@mschristensen mschristensen deleted the bugfix/AIT-133-citations branch January 15, 2026 10:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-app Create a Heroku review app

Development

Successfully merging this pull request may close these issues.

4 participants